from functools import wraps
from flask import g, redirect, url_for


# 登录验证装饰器
def login_required(func):
    @wraps(func)  # 保留原函数信息
    # *args, **kwargs能代表func函数中的所有参数。
    # 如func(1,2,c=3),*args传递前两个参数，**kwargs传递第三个参数
    def inner(*args, **kwargs):
        if g.user:  # 如果用户已登录，正常执行请求
            return func(*args, **kwargs)
        else:  # 未登录用户，跳转登录页
            return redirect(url_for("auth.login"))

    return inner  # 返回inner函数
